/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package interfaz;

import compumundohipermegared.Foto;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

/**
 *
 * @author Asistente
 */
public class PanelMisFotos extends JPanel implements ActionListener
{   
    private final static String COMPARTIR_FOTO = "Compartir Foto";
    
    private final static String VER = "Ver Detalles Foto";
    
    private final static String BUSCAR_FOTO_MAS_PARECIDA = "Buscar Foto Más Parecida";
    
    private InterfazFotosP2P principal;
    
    private JButton butVer;
    
    private JButton butCompartirFoto;
    
    private JButton butBuscarFotoMasParecida;
    
    private JList listaFotos;
    
    private JScrollPane scroll;
    
    public PanelMisFotos( InterfazFotosP2P ventana )
    {
        principal = ventana;
        
        setLayout( new BorderLayout( ) );
        
        JPanel aux = new JPanel( );
        aux.setLayout( new BorderLayout( ) );
        
        butCompartirFoto = new JButton( COMPARTIR_FOTO );
        butCompartirFoto.setActionCommand( COMPARTIR_FOTO );
        butCompartirFoto.addActionListener( this );
        aux.add( butCompartirFoto, BorderLayout.NORTH );
        
        aux.add( new JPanel( ), BorderLayout.CENTER );
        
        add( aux, BorderLayout.WEST );
        
        JPanel aux2 = new JPanel( );
        aux2.setLayout( new BorderLayout( ) );
        
        listaFotos = new JList( );
        listaFotos.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );

        scroll = new JScrollPane( listaFotos );
        scroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
        scroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED );
        scroll.setBorder( new TitledBorder( "Mis Fotos" ) );
        aux2.add( scroll, BorderLayout.CENTER );
        
        JPanel aux3 = new JPanel( );
        aux3.setLayout( new GridLayout( 1, 2 ) );
        
        butVer = new JButton( VER );
        butVer.setActionCommand( VER );
        butVer.addActionListener( this );
        aux3.add( butVer );
        
        butBuscarFotoMasParecida = new JButton( BUSCAR_FOTO_MAS_PARECIDA );
        butBuscarFotoMasParecida.setActionCommand( BUSCAR_FOTO_MAS_PARECIDA );
        butBuscarFotoMasParecida.addActionListener( this );
        aux3.add( butBuscarFotoMasParecida );
        
        aux2.add( aux3, BorderLayout.SOUTH );
        
        
        add( aux2, BorderLayout.CENTER );
    }

    public void actualizar( ArrayList<Foto> fotos )
    {
        listaFotos.setListData( fotos.toArray( ) );
        listaFotos.setSelectedIndex( 0 );
    }
    
    public void actionPerformed( ActionEvent e )
    {
        String comando = e.getActionCommand( );
        
        if( comando.equals( COMPARTIR_FOTO ) )
        {
            principal.compartirFoto( );
        }
        else if( comando.equals( VER ) )
        {
            if( listaFotos.getSelectedValue( ) != null )
            {
                Foto foto = ( Foto )listaFotos.getSelectedValue( );
                principal.verFoto( foto );
            }
        }
        else if( comando.equals( BUSCAR_FOTO_MAS_PARECIDA ) )
        {
            if( listaFotos.getSelectedValue( ) != null )
            {
                Foto foto = ( Foto )listaFotos.getSelectedValue( );
                principal.buscarFotoMasParecida( foto );
            }
        }
    }

    void deshabilitar( )
    {
        butBuscarFotoMasParecida.setEnabled(false);
        butCompartirFoto.setEnabled(false);
        butVer.setEnabled(false);
    }

    void habilitar( ) 
    {
        butBuscarFotoMasParecida.setEnabled(true);
        butCompartirFoto.setEnabled(true);
        butVer.setEnabled(true);
    }
}
